<?php
/**
 * Modelo para la interaccion con los datos de los proyectos (tabla proyectos)
 *
 * @author 3WD
 */

class Project_model extends CI_Model {

    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }

	//generales
	
	function get_nombre($id_project){
		$this->db->select("nombre_proyecto");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->where('id_proyecto', $id_project);
		$consulta = $this->db->get();
	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila)
			{
				return $fila['nombre_proyecto'];
			}
		} else {
			return 0;	
		}
	}
	
	function get_cliente($id_project){
		$this->db->select("id_cliente");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->where('id_proyecto', $id_project);
		$consulta = $this->db->get();
	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila)
			{
				return $fila['id_cliente'];
			}
		} else {
			return 0;	
		}
	}
	
	function get_status($id_project){
		$this->db->select("status_proyecto");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->where('id_proyecto', $id_project);
		$consulta = $this->db->get();
	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila)
			{
				return $fila['status_proyecto'];
			}
		} else {
			return 0;	
		}
	}	
	
	function set_nombre($id_project,$valor){
		$data = array(
		'nombre_proyecto' => $valor
		);
		$this->db->where('id_proyecto', $id_project);
		return $this->db->update(SYSTEM_PREFIX.'proyectos', $data);
	}
	
	function set_cliente($id_project,$valor){
		$data = array(
		'id_cliente' => $valor
		);
		$this->db->where('id_proyecto', $id_project);
		return $this->db->update(SYSTEM_PREFIX.'proyectos', $data);
	}
	
	function set_status($id_project,$valor){
		$data = array(
		'status_proyecto' => $valor
		);
		$this->db->where('id_proyecto', $id_project);
		return $this->db->update(SYSTEM_PREFIX.'proyectos', $data);
	}	
	
//especificas	
	
	
	function set_row_project($nombre,$cliente,$status){
		$data = array(
		'nombre_proyecto' => $nombre,
		'id_cliente' => $cliente,
		'fecha_creacion' => date('Y-m-d h:m:s'),
		'status_proyecto' => $status		
		);
		$this->db->insert(SYSTEM_PREFIX.'proyectos', $data);
		
		$id = $this->db->insert_id();	
		return $id;
	
	}
	
	function get_id_proyecto_by_nombre_proyecto($nombre_proyecto){
		$this->db->select("id_proyecto");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->where('nombre_proyecto', $nombre_proyecto);
		$consulta = $this->db->get();
	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila)
			{
				return $fila['id_proyecto'];
			}
		} else {
			return 0;	
		}
	}
	
	public function getAllProjects($sort, $direction, $limit=10, $offset=0)
	
	{
		$posts = array();
		
		$search = $this->session->userdata('search');
		
		$this->db->select("*");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->join(SYSTEM_PREFIX.'clientes', SYSTEM_PREFIX.'clientes.id_cliente ='.SYSTEM_PREFIX.'proyectos.id_cliente');
		//$this->db->where('id_grupo', '3');	
		
		if(!empty($search)) {
			$this->db->where('(nombre_proyecto like "%'.$search.'%" OR nombre_cliente like "%'.$search.'%" OR status_proyecto = "'.$search.'")');	
		}

		$this->db->order_by($sort, $direction); 
		$this->db->limit($limit, $offset); 
		return $this->db->get();
	}
	
	
	public function getNumProjects()
	{	


		$search = $this->session->userdata('search');

		$this->db->select("*");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->join(SYSTEM_PREFIX.'clientes', SYSTEM_PREFIX.'clientes.id_cliente ='.SYSTEM_PREFIX.'proyectos.id_cliente');
		//$this->db->where('id_grupo', '3');
		
		if(!empty($search)) {
			$this->db->where('(nombre_proyecto like "%'.$search.'%" OR nombre_cliente like "%'.$search.'%" OR status_proyecto = "'.$search.'")');		
		}
		
		$this->db->order_by('id_proyecto', 'desc'); 

		$query = $this->db->get();	
		return $query->num_rows();

	}
	
	function get_row_project($id_project){
		$this->db->select("*");
		$this->db->from(SYSTEM_PREFIX.'proyectos');
		$this->db->where('id_proyecto', $id_project);
		$consulta = $this->db->get();
	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila)
			{
				return $fila;
			}
		} else {
			return 0;	
		}		
	}
	
	public function delete_project($id_project){
				
		$this->db->where('id_proyecto', $id_project);
		$this->db->delete(SYSTEM_PREFIX.'proyectos_staff');	
		
		$this->db->where('id_proyecto', $id_project);
		return $this->db->delete(SYSTEM_PREFIX.'proyectos');

	}


	 public function get_asign_list_project($id_project) {
		$this->db->select("id_proyecto_staff, nombre, proyectos_staff.tipo_usuario as tipo_usuario");
		$this->db->from(SYSTEM_PREFIX.'proyectos_staff');
		$this->db->join(SYSTEM_PREFIX.'usuarios', SYSTEM_PREFIX.'usuarios.id_usuario ='.SYSTEM_PREFIX.'proyectos_staff.id_usuario');
		$this->db->where('id_proyecto', $id_project);
		$consulta = $this->db->get();	
		
		if ($consulta->num_rows() > 0){		
			$i=0;
			foreach ($consulta->result_array() as $fila)
			{
				$salida[$i]['id_proyecto_staff'] = $fila['id_proyecto_staff'];	
				$salida[$i]['nombre'] = $fila['nombre'];	
				$salida[$i]['tipo_usuario'] = $fila['tipo_usuario'];	
				$i++;
			}
			return $salida;
		} else {
			return 0;	
		}		 
		 
	 }
	 
	 public function get_asign_select_project($id_project) {
		$this->db->select("id_usuario, nombre");
		$this->db->from(SYSTEM_PREFIX.'usuarios');
		$this->db->where('id_usuario NOT IN (SELECT id_usuario FROM '.SYSTEM_PREFIX.'proyectos_staff WHERE id_proyecto='.$id_project.') AND  (tipo_usuario=\'equipo\' or tipo_usuario=\'administrador\')');
		
		$consulta = $this->db->get();	
		
		if ($consulta->num_rows() > 0){		
			$i=0;
			foreach ($consulta->result_array() as $fila)
			{
				$key = $fila['id_usuario'];				
				$salida[$key] = $fila['nombre'];			
			}
			return $salida;
		} else {
			return 0;	
		}		 
		 
	 }	 
	 

	function add_staff_to_project($id_project,$id_staff, $type_user){
		$data = array(
		'id_proyecto' => $id_project,
		'id_usuario' => $id_staff,
		'tipo_usuario' => $type_user		
		);
		$this->db->insert(SYSTEM_PREFIX.'proyectos_staff', $data);
		
		$id = $this->db->insert_id();	
		return $id;
	
	}

	 public function get_exists_lider_staff_project($id_project) {
		$this->db->select("tipo_usuario");
		$this->db->from(SYSTEM_PREFIX.'proyectos_staff');
		$this->db->where('tipo_usuario','lider');
		$this->db->where('id_proyecto',$id_project);
		
		$consulta = $this->db->get();	
		
		if ($consulta->num_rows() > 0){		
			foreach ($consulta->result_array() as $fila){
				return 'apoyo';		
			}			
		} else {
			return 'lider';	
		}		 
	 }

	function set_type_user_project($id_project,$id_project_staff){
		$data = array(
		'tipo_usuario' => 'apoyo'
		);
		$this->db->where('id_proyecto', $id_project);
		$this->db->update(SYSTEM_PREFIX.'proyectos_staff', $data);
		
		$data = array(
		'tipo_usuario' => 'lider'
		);
		$this->db->where('id_proyecto_staff', $id_project_staff);
		return $this->db->update(SYSTEM_PREFIX.'proyectos_staff', $data);		
		
	}

	function delete_staff_project($id_staff){
		$this->db->where('id_proyecto_staff', $id_staff);
		return $this->db->delete(SYSTEM_PREFIX.'proyectos_staff');		
	}
	
	 public function get_asign_select_project_default() {
		$this->db->select("id_usuario, nombre");
		$this->db->from(SYSTEM_PREFIX.'usuarios');
		$this->db->where('tipo_usuario', 'equipo');
		$this->db->or_where('tipo_usuario', 'administrador'); 
		
		$consulta = $this->db->get();	
		
		if ($consulta->num_rows() > 0){		
			$i=0;
			foreach ($consulta->result_array() as $fila)
			{
				$key = $fila['id_usuario'];				
				$salida[$key] = $fila['nombre'];			
			}
			return $salida;
		} else {
			return 0;	
		}		 
		 
	 }	

}